home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
cpp_libs
/
answrbok
/
4_6.lha
/
4_6
/
4_6test.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-08-08
|
2KB
|
92 lines
* Copyright (c) 1990 by AT&T Bell Telephone Laboratories, Incorporated. */
* The C++ Answer Book */
* Tony Hansen */
* All rights reserved. */
xtern int randints[];
include <stream.h>
include <memory.h>
include "timen.h"
nt compar(const void *va, const void *vb)
const int *a = (int*)va, *b = (int*)vb;
if (*a == *b)
return 0;
else if (*a < *b)
return -1;
else
return 1;
ifdef __cplusplus
extern "C"
endif
oid qsort (void *, unsigned, unsigned, int (*)(const void*,const void*));
oid qsort1(void *, unsigned, unsigned, int (*)(const void*,const void*));
oid qsort2(void *, unsigned, unsigned, int (*)(const void*,const void*));
oid qsort3(void *, unsigned, unsigned, int (*)(const void*,const void*));
nt printing = 0;
oid prarray(register int *nr, register long n)
if (printing & 1)
for (register long i = 0; i < n; i++)
cout << "nr[" << i << "] = " << nr[i] << "\n";
oid verify(register int *nr, register long n)
prarray(nr, n);
n--;
for (register long i = 0, j = 1; i < n; i++, j++)
if (nr[i] > nr[j])
{
cout << "FAILED n = " << ++n << "\n";
return;
}
cout << "SUCCEEDED n = " << ++n << "\n";
ain(int argc, char **argv)
if (argc > 1)
printing = atoi(argv[1]);
int nrandints[10000];
// for (long i = 100; i <= 10000; i *= 10)
for (long i = 10; i <= 10000; i *= 10)
{
memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int));
prarray(nrandints, i);
time0();
qsort1(nrandints, (int)i, sizeof(int), compar);
time1("qsort1");
verify(nrandints, i);
memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int));
prarray(nrandints, i);
time0();
qsort2(nrandints, (int)i, sizeof(int), compar);
time1("qsort2");
verify(nrandints, i);
memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int));
prarray(nrandints, i);
time0();
qsort3(nrandints, (int)i, sizeof(int), compar);
time1("qsort3");
verify(nrandints, i);
memcpy((char*)nrandints, (char*)randints, (int)i * sizeof(int));
prarray(nrandints, i);
time0();
qsort(nrandints, (int)i, sizeof(int), compar);
time1("qsortS");
verify(nrandints, i);
}
return 0;